using System;
using SMS.SMPPClient.PDU;

namespace SMS.SMPPClient.PDU.Outgoing
{
    /// <summary>
    /// Provides some common attributes for data_sm, submit_sm, submit_multi,
    /// and replace_sm.
    /// </summary>
    public abstract class MessageLCD4 : MessageLCD6
    {
        protected RegisteredDeliveryType _RegisteredDelivery;

        protected const int DELIVERY_TIME_LENGTH = 16;
        protected const int VALIDITY_PERIOD_LENGTH = 16;

        /// <summary>
        /// Groups construction tasks for subclasses.
        /// </summary>
        /// <param name="registeredDelivery">The registered delivery type.</param>
        /// <param name="sourceAddrTON">The type of number of the source address.</param>
        /// <param name="sourceAddrNPI">The number plan indicator of the source
        /// address.</param>
        /// <param name="sourceAddress">The source address.</param>
        protected MessageLCD4(RegisteredDeliveryType registeredDelivery,
            TONType sourceAddrTON, NPIType sourceAddrNPI,
            string sourceAddress)
            : base(sourceAddrTON, sourceAddrNPI,
            sourceAddress)
        {
            _RegisteredDelivery = registeredDelivery;
        }
    }
}

